package com.example.demo1.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * 注册一个RestTemplate Bean, 否则直接通过@Autowired使用会报RestTemplate找不到
 * @author ouyangjun
 */
@Configuration
public class RestTemplateConfig {

    /**
     * 方式一: 默认是使用JDK原生java.net.HttpURLConnection请求
     * @return
     */
    @Bean(name = "restTemplate")
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    /**
     * 方式二: 使用apache http内置请求, 需要在pom.xml中引入相应的apache jar
     * 可以使用HttpClient，设置一些http连接池等信息
     * @return
     *
     @Bean(name = "restTemplate")
     public RestTemplate restTemplate() {
     return new RestTemplate(new HttpComponentsClientHttpRequestFactory());
     }
     */

    /**
     * 方式三: 使用OkHttp内置请求, 需要在pom.xml中引入相应的OkHttp3 jar
     * 可以使用OkHttpClient，设置一些http连接池信息
     * @return
     *
     @Bean(name = "restTemplate")
     public RestTemplate restTemplate() {
     return new RestTemplate(new OkHttp3ClientHttpRequestFactory());
     }
     */
}